Default Interface Methods
Default interface methods allow an interface to provide an implementation for a method instead of requiring every implementing class to define it. Java introduced default methods in Java 8 primarily to evolve existing interfaces without breaking all existing implementations. C# introduced default interface implementations in C# 8 for a similar API-evolution and compatibility purpose. They should be used carefully because putting substantial business logic into interfaces can blur responsibilities.
Default methods provide reusable interface behavior.
They allow interfaces to evolve without immediately breaking every implementation.
Java introduced them in Java 8.
C# supports default interface implementations from C# 8.
Conflicting defaults may require explicit resolution depending on the language.
Default methods should not become a dumping ground for complex business logic.